[XEN][POWERPC] U4 DART workaround for functionality
authorJimi Xenidis <jimix@watson.ibm.com>
Tue, 26 Sep 2006 18:01:11 +0000 (14:01 -0400)
committerJimi Xenidis <jimix@watson.ibm.com>
Tue, 26 Sep 2006 18:01:11 +0000 (14:01 -0400)
This patch invalidates the whole DART cache rather than the single
entry.  Until we get single entry invalidating we'll have an obvious
performance issue.
Signed-off-by: Jimi Xenidis <jimix@watson.ibm.com>
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
--HG--
extra : transplant_source : %2A%A9%A6T%08%BC%10YL%D2H%8Ff%40WO%5E%A6uI

xen/arch/powerpc/dart_u4.c

index c3495cfce3252bfb89db6fd03bd8609289ac7bf8..131adc983f8138ab11240406a8e818096627717a 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 #undef DEBUG
+#define INVALIDATE_ALL
 
 #include <xen/config.h>
 #include <xen/types.h>
@@ -123,9 +124,14 @@ static void u4_inv_all(void)
 
 static void u4_inv_entry(ulong pgn)
 {
+#ifdef INVALIDATE_ALL
+    return u4_inv_all();
+#else
     union dart_ctl dc;
     ulong retries = 0;
 
+    return u4_inv_all();
+
     dc.dc_word = in_32(&dart->d_dartcntl.dc_word);
     dc.dc_bits.dc_ilpn = pgn;
     dc.dc_bits.dc_ione = 1;
@@ -139,6 +145,7 @@ static void u4_inv_entry(ulong pgn)
         if (retries > 1000000)
             panic("WAY! too long\n");
     } while (dc.dc_bits.dc_ione != 0);
+#endif
 }
 
 static struct dart_ops u4_ops = {